package main

import "fmt"

func main() {

	var array1 [3]int
	var i, j int

	for i = 0; i < 3; i++ {
		array1[i] = i + 100
	}

	for j = 0; j < 3; j++ {
		fmt.Printf("Element[%d] = %d\n", j, array1[j])
	}

	var numbers = [5]int{1, 2, 3, 4, 5}

	fmt.Printf("numbers[4] = %d\n", numbers[4])

	numbers1 := [5]int{1, 2, 3, 4, 5}

	fmt.Printf("numbers1[4] = %d\n", numbers1[4])

	var balance = [5]float32{100.00, 2.0, 3.4, 7.0, 50.0}

	fmt.Printf("balance[4] = %f\n", balance[4])

	balance1 := [5]float32{100.00, 2.0, 3.4, 7.0, 50.0}

	fmt.Printf("balance1[4] = %f\n", balance1[4])

	var balance2 = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
	fmt.Printf("balance2[0] = %f\n", balance2[0])

	balance3 := [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}

	fmt.Printf("balance3[2] = %f\n", balance3[2])

	balance4 := [5]float32{1: 1000.0, 4: 2.0}

	fmt.Printf("balance4[2] = %f\n", balance4[4])

	// Step 1: 创建数组
	values := [][]int{}

	// Step 2: 使用 append() 函数向空的二维数组添加两行一维数组
	row1 := []int{1, 2, 3}
	row2 := []int{4, 5, 6}
	values = append(values, row1)
	values = append(values, row2)

	// Step 3: 显示两行数据
	fmt.Println("Row 1")
	fmt.Println(values[0])
	fmt.Println("Row 2")
	fmt.Println(values[1])

	// Step 4: 访问第一个元素
	fmt.Println("第一个元素为：")
	fmt.Println(values[0][0])

	a1 := [3][4]int{
		{0, 1, 2, 3},   /*  第一行索引为 0 */
		{4, 5, 6, 7},   /*  第二行索引为 1 */
		{8, 9, 10, 11}, /* 第三行索引为 2 */
	}

	fmt.Println(a1)

	a2 := [3][4]int{
		{0, 1, 2, 3},   /*  第一行索引为 0 */
		{4, 5, 6, 7},   /*  第二行索引为 1 */
		{8, 9, 10, 11}} /* 第三行索引为 2 */
	fmt.Println(a2)

	sites := [2][2]string{}
	// 向二维数组添加元素
	sites[0][0] = "Google"
	sites[0][1] = "Runoob"
	sites[1][0] = "Taobao"
	sites[1][1] = "Weibo"

	// 显示结果
	fmt.Println(sites)

	var a = [5][2]int{{0, 0}, {1, 2}, {2, 4}, {3, 6}, {4, 8}}
	var i1, j2 int
	for i1 = 0; i1 < 5; i1++ {
		for j2 = 0; j2 < 2; j2++ {
			fmt.Printf("a[%d][%d] = %d\n", i1, j2, a[i1][j2])
		}
	}
}
